<?php
/**
 * ***********************************************************************************
 * 咨询鲤 PC端知识店铺-JWT加密解密
 * 
 * @author Mr.RJH
 * @date 2025-09-16
 * @email<15213026209@163.com>
 * ***********************************************************************************
 */
namespace jwt;

use Firebase\JWT\JWT;
use Firebase\JWT\Key;

class JwtHelper{
    
    /**
     * 生成Token
     * 
     * @param array $params
     * @return string
     */
    public static  function signToken($params)
    {
        $now = time();
        $token = [
            'iss'  => config('jwt.app_name'),         //签发者
            'iat'  => $now,                         //签发时间
            'nbf'  => $now,                         //该时间前不接受处理该token
            'data' => $params
        ];
        $data = JWT::encode($token, config('jwt.secret'), 'HS256');
        return $data;
    }

    /**
     * 解密Token
     * 
     * @return array
     */
    public static  function checkToken($token)
    {
        try {
            $key = new Key(config('jwt.secret'), 'HS256');
            $info = JWT::decode($token, $key);
        } catch (Exception $e) {
            throw new Exception('Token验证失败: ' . $e->getMessage());
        }
        return $info;
    }
}